| 
                
               | 
              
                
               | 
              
                @@ -16,8 +16,7 @@ from group.models import GroupInfo, GroupUserInfo 
               | 
            
            
            
              | 
                16
               | 
              
                16
               | 
              
                 from utils.error.errno_utils import GroupStatusCode, GroupUserStatusCode, TokenStatusCode, UserStatusCode 
               | 
            
            
            
              | 
                17
               | 
              
                17
               | 
              
                 from utils.error.response_utils import response 
               | 
            
            
            
              | 
                18
               | 
              
                18
               | 
              
                 from utils.redis.rgroup import get_group_info, get_group_users_info, set_group_info, set_group_users_info 
               | 
            
            
            
              | 
                19
               | 
              
                
               | 
              
                -from utils.redis.rkeys import (TOUR_GUIDE_GROUP_CUR_GATHER_INFO, TOUR_GUIDE_GROUP_CUR_SESSION, 
               | 
            
            
            
              | 
                20
               | 
              
                
               | 
              
                -                               TOUR_GUIDE_GROUP_GEO_SUBMIT_DT) 
               | 
            
            
            
              | 
                
               | 
              
                19
               | 
              
                +from utils.redis.rkeys import TOUR_GUIDE_GROUP_CUR_GATHER_INFO, TOUR_GUIDE_GROUP_CUR_SESSION 
               | 
            
            
            
              | 
                21
               | 
              
                20
               | 
              
                 from utils.redis.rtourguide import get_tour_guide_own_group, set_tour_guide_own_group 
               | 
            
            
            
              | 
                22
               | 
              
                21
               | 
              
                 from utils.redis.rtouruser import get_tour_user_belong_group 
               | 
            
            
            
              | 
                23
               | 
              
                22
               | 
              
                 from utils.storage_utils import file_save 
               | 
            
            
            
            
            
              | 
                
               | 
              
                
               | 
              
                @@ -102,41 +101,16 @@ def tg_group_create_api(request): 
               | 
            
            
            
              | 
                102
               | 
              
                101
               | 
              
                     }) 
               | 
            
            
            
              | 
                103
               | 
              
                102
               | 
              
                  
               | 
            
            
            
              | 
                104
               | 
              
                103
               | 
              
                  
               | 
            
            
            
              | 
                105
               | 
              
                
               | 
              
                -def set_geo_submit_flag(uinfo, geo_at, gather_at): 
               | 
            
            
            
              | 
                106
               | 
              
                
               | 
              
                -    """ 是否上传过位置字段(即是否失联) """ 
               | 
            
            
            
              | 
                107
               | 
              
                
               | 
              
                -    uinfo['geo_submited'] = False 
               | 
            
            
            
              | 
                108
               | 
              
                
               | 
              
                -    if geo_at and gather_at: 
               | 
            
            
            
              | 
                109
               | 
              
                
               | 
              
                -        current_dt = tc.utc_datetime() 
               | 
            
            
            
              | 
                110
               | 
              
                
               | 
              
                -        delta_seconds = tc.total_seconds(gather_at - current_dt) 
               | 
            
            
            
              | 
                111
               | 
              
                
               | 
              
                -        # 距离集合时间超过30分钟是5分钟,15分钟到30分钟是3分钟,15分钟以内是1分钟 
               | 
            
            
            
              | 
                112
               | 
              
                
               | 
              
                -        for delta, gdt in [(1800, 300), (900, 180), (0, 60)]: 
               | 
            
            
            
              | 
                113
               | 
              
                
               | 
              
                -            if delta_seconds > delta: 
               | 
            
            
            
              | 
                114
               | 
              
                
               | 
              
                -                uinfo['geo_submited'] = tc.total_seconds(current_dt - geo_at) <= gdt 
               | 
            
            
            
              | 
                115
               | 
              
                
               | 
              
                -                break 
               | 
            
            
            
              | 
                116
               | 
              
                
               | 
              
                -    return uinfo 
               | 
            
            
            
              | 
                117
               | 
              
                
               | 
              
                - 
               | 
            
            
            
              | 
                118
               | 
              
                
               | 
              
                - 
               | 
            
            
            
              | 
                119
               | 
              
                104
               | 
              
                 @logit 
               | 
            
            
            
              | 
                120
               | 
              
                105
               | 
              
                 def tg_group_detail_api(request): 
               | 
            
            
            
              | 
                121
               | 
              
                106
               | 
              
                     """ 旅行团详情 """ 
               | 
            
            
            
              | 
                122
               | 
              
                107
               | 
              
                     group_id = request.POST.get('group_id', '')
               | 
            
            
            
              | 
                123
               | 
              
                108
               | 
              
                     user_id = request.POST.get('user_id', '')
               | 
            
            
            
              | 
                124
               | 
              
                109
               | 
              
                  
               | 
            
            
            
              | 
                125
               | 
              
                
               | 
              
                -    # GEO last submit datetimes 
               | 
            
            
            
              | 
                126
               | 
              
                
               | 
              
                -    geo_dts = r.hgetall(TOUR_GUIDE_GROUP_GEO_SUBMIT_DT % group_id) 
               | 
            
            
            
              | 
                127
               | 
              
                
               | 
              
                - 
               | 
            
            
            
              | 
                128
               | 
              
                
               | 
              
                -    group_info = get_group_info(group_id) 
               | 
            
            
            
              | 
                129
               | 
              
                
               | 
              
                -    # Gather datetime 
               | 
            
            
            
              | 
                130
               | 
              
                
               | 
              
                -    gather_at = group_info.get('gather_at', '')
               | 
            
            
            
              | 
                131
               | 
              
                
               | 
              
                -    gather_at = tc.utc_string_to_utc_datetime(gather_at, format='%Y-%m-%dT%H:%M:%SZ') if isinstance(gather_at, basestring) else gather_at 
               | 
            
            
            
              | 
                132
               | 
              
                
               | 
              
                -    if gather_at and tc.utc_datetime() > gather_at: 
               | 
            
            
            
              | 
                133
               | 
              
                
               | 
              
                -        gather_at = '' 
               | 
            
            
            
              | 
                134
               | 
              
                
               | 
              
                - 
               | 
            
            
            
              | 
                135
               | 
              
                110
               | 
              
                     group_users_info = get_group_users_info(group_id, user_id) 
               | 
            
            
            
              | 
                136
               | 
              
                111
               | 
              
                     # Remove tourguide 
               | 
            
            
            
              | 
                137
               | 
              
                112
               | 
              
                     group_passed_users = [uinfo for uinfo in group_users_info['passed'] if not uinfo['subadmin']] 
               | 
            
            
            
              | 
                138
               | 
              
                
               | 
              
                -    # GEO Submited Flag 
               | 
            
            
            
              | 
                139
               | 
              
                
               | 
              
                -    group_passed_users = [set_geo_submit_flag(uinfo, tc.utc_string_to_utc_datetime(geo_dts.get(uinfo['user_id'], '')), gather_at) for uinfo in group_passed_users] 
               | 
            
            
            
              | 
                
               | 
              
                113
               | 
              
                +    # Update passed users 
               | 
            
            
            
              | 
                140
               | 
              
                114
               | 
              
                     group_users_info['passed'] = group_passed_users 
               | 
            
            
            
              | 
                141
               | 
              
                115
               | 
              
                     # Update passed count 
               | 
            
            
            
              | 
                142
               | 
              
                116
               | 
              
                     group_users_info['passed_count'] = len(group_passed_users) 
               | 
            
            
            
            
            
              | 
                
               | 
              
                
               | 
              
                @@ -145,7 +119,7 @@ def tg_group_detail_api(request): 
               | 
            
            
            
              | 
                145
               | 
              
                119
               | 
              
                  
               | 
            
            
            
              | 
                146
               | 
              
                120
               | 
              
                     return response(200, 'Get Tour Guide Group Detail Info Success', u'获取旅行团详情成功', {
               | 
            
            
            
              | 
                147
               | 
              
                121
               | 
              
                         'group_id': group_id, 
               | 
            
            
            
              | 
                148
               | 
              
                
               | 
              
                -        'group': group_info, 
               | 
            
            
            
              | 
                
               | 
              
                122
               | 
              
                +        'group': get_group_info(group_id), 
               | 
            
            
            
              | 
                149
               | 
              
                123
               | 
              
                         'users': group_users_info, 
               | 
            
            
            
              | 
                150
               | 
              
                124
               | 
              
                     }) 
               | 
            
            
            
              | 
                151
               | 
              
                125
               | 
              
                  
               |